Conventionally, data used when a CPU (central processing unit) executes a program is preloaded from a main memory to a cache memory to perform prefetch processing corresponding to the delay time of memory access.
Hardware prefetching that uses hardware and software prefetching that uses software are available as the prefetch processing. Hardware prefetching is a scheme in which, based on a data access pattern, hardware predicts the next data required by the CPU to prefetch the data. In contrast, software prefetching is a scheme in which a prefetch instruction is inserted into a program, so that data is read to a cache in response to the prefetch instruction issued from software.
For a program in which many branch instructions are issued, an interface circuit that prefetches branch addresses for executing instructions after the branch instructions are issued is known to allow an improvement in the fetch efficiency of a program in which a specific branch address appears repeatedly.
For a database system, a data pre-reading method in which information regarding a SQL (structured query language) statement that appears many times and the execution start information of the processing of the statement are obtained and a data pre-reading direction is issued to a storage device based on the obtained information is known to allow an improvement in the fetch efficiency of a program in which processing specified by a specific SQL statement is repeatedly executed.